
package bitclub;

import herramientas.BitUtil;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import persistencia.PMovimiento;

/**
 * @author BIT COMPANY
 */
public class Movimiento {
    
    private String concepto;
    private Date fecha;
    private double importe;

    public Movimiento(String concepto, Date fecha, double importe) {
        this.concepto = concepto;
        this.fecha = fecha;
        this.importe = importe;
    }
    
    public Movimiento() {
        super();
    }

    public String getConcepto() {
        return concepto;
    }

    public void setConcepto(String concepto) {
        this.concepto = concepto;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public double getImporte() {
        return importe;
    }

    public void setImporte(double importe) {
        this.importe = importe;
    }

    @Override
    public String toString() {
        String cadena="";
        cadena += BitUtil.muestraFecha(fecha) + " - Importe: "+ importe + " - Concepto: " + concepto;        
        return cadena;
    }    
    
    /**
     * Crea un nuevo registro en BD con el objeto Movimiento
     */
    public void nuevo() {
        PMovimiento.nuevoBD(this);
    }
    
    /**
     * metodo q llama a persistencia para q devuelva arraylist de los ultimos 10 movimientos
     */
    public static List<Movimiento> ultimosMovimientos (int cantidad){
        
        List<Movimiento> listMovimiento = new ArrayList();
        
        listMovimiento = PMovimiento.seleccionarUltimos(cantidad);
        return listMovimiento;
        
    }
    
    /**
     * Metodo q llama a persistencia para q devuelva arraylist de los ultimos movimientos entre 2 fechas
     */
    public static List<Movimiento> generarInforme (Date fechaInicio, Date fechaFin){
                
        List<Movimiento> listMovimiento = new ArrayList();
        
        listMovimiento = PMovimiento.seleccionarporFecha(fechaInicio, fechaFin);
        return listMovimiento;
    }
    
    public static List<Movimiento> dameBalance(Date fecha) {
    
        List<Movimiento> listMovimiento = new ArrayList();
        
        listMovimiento = PMovimiento.seleccionarporFecha(fecha, fecha);
        
        return listMovimiento;      
    
    }
   
}
